| Repository (repo) | A storage location for your project's files and history. |
| Local repository | The copy of the repo on your computer. |
| Remote repository | The copy of the repo stored on a server (e.g., GitHub). |
| Commit | A saved snapshot of your project at a specific point in time. |
| Staging area (index) | The place where changes are prepared before committing. |
| Branch | A separate line of development. |
| Main/Master branch | The primary branch where production-ready code lives. |
| Feature branch | A branch used to work on a specific feature or task. |
| Merge | Combining changes from one branch into another. |
| Merge conflict | When two changes affect the same part of a file and Git can’t merge automatically. |
| Fetch | Downloading changes from a remote repo without applying them to your code. |
| Pull | Downloading changes from a remote repo and merging them into your branch. |
| Push | Sending your local commits to the remote repo. |
| HEAD | A pointer to your current commit/branch. |
| Detached HEAD | When HEAD points to a specific commit instead of a branch. |
| Reset | Moving HEAD and optionally changing the staging area or working directory. |
| Revert | Creating a new commit that undoes a previous commit. |
| Clone | Making a full copy of a remote repo locally. |
| Tag | A label for a specific commit, often used for versioning. |